import request from '../../utils/request';
import config from '../../config';
import axios from 'axios';
axios.defaults.withCredentials = true;
import $ from 'jquery';
const common = {
  state: {

  },

  getters: {

  },

  mutations: {

  },

  actions: {
    /**
     * 通用-上传文件
     * @payload{ 
     *  dir string 路径
     *  type string 1图片 2视频
     * }
     * */
    UPLOAD_FILE({ commit }, payload) {
      console.log('payload:::', payload, payload.get('file'));
      console.log('payload:::', payload, payload.get('type'));
      console.log('jquery::::---', $);

      // 原生
      // return new Promise((resolve, reject) => {
        
      //   function uploadComplete(data){
      //     console.log("上传成功");
      //     resolve(data);
      //   }
      //   function uploadError(err){
      //     console.error('err', err);
      //     reject(err);
      //   }
      //   function progressFunction(event){
      //     console.log('event:::', event);
      //   }
        
      //   console.log('commit::', commit);
      //   var url = "http://admin-test.lawfirm.konggeek.com/user/uploadFile.htm";
     
      //   var xhr = new XMLHttpRequest();// XMLHttpRequest 对象
      //   xhr.withCredentials = true;
      //   xhr.open("post", url, true);//post方式，url为服务器请求地址，true 该参数规定请求是否异步处理。
      //   xhr.onload = uploadComplete;
      //   xhr.onerror = uploadError;
      //   xhr.upload.onprogress = progressFunction;//文件上传过程中不断调用的一个方法
      //   xhr.upload.onloadstart = function () {//上传开始执行方法
      //     let ot;
      //     let oloaded;
      //     ot = new Date().getTime();//设置上传开始时间
      //     oloaded = 0;//设置上传开始时，以上传的文件大小为0
      //   };
      //   xhr.send(payload);
      // });

     //jquery
      // return new Promise((resolve, reject) => {
      //   $.ajax({
      //     type: 'post',
      //     data: payload,
      //     // url: 'http://admin-test.lawfirm.konggeek.com/user/uploadFile.htm',
      //     url: 'http://localhost:3000/api/admin/uploadImg',
      //     processData: false, // 告诉jQuery不要去处理发送的数据
      //     contentType: false, // 告诉jQuery不要去设置Content-Type请求头
      //     xhrFields: {
      //       // withCredentials: true
      //     },
      //     // crossDomain: true,
      //     xhr: function () {
      //       const myXhr = $.ajaxSettings.xhr();
      //       if (myXhr.upload) { // check if upload property exists
      //         myXhr.upload.addEventListener('progress', function (e) {
      //           var loaded = e.loaded;                  //已经上传大小情况 
      //           var total = e.total;                      //附件总大小 
      //           var percent = Math.floor(100 * loaded / total) + "%";     //已经上传的百分比  
      //           console.log("已经上传了：" + percent);
      //           $("#processBar").css("width", percent);
      //         }, false); // for handling the progress of the upload
      //       }
      //       return myXhr;
      //     },
      //     success: function (res) {
      //       console.log("上传成功!!!!");
      //       console.log('commit::', commit);
      //       const data = JSON.parse(res);
      //       console.log('data::', data.data);
      //       resolve(data);
      //     },
      //     error: function (err) {
      //       console.error('err::::', err);
      //       reject(err);
      //     }
      //   })
      // });

      return new Promise((resolve, reject) => {
        axios({
          url: config.dev.BASE_URL + '/user/uploadFile.htm',
          // url: 'http://localhost:3000/api/admin/uploadImg',
          method: 'post',
          // onUploadProgress: function (progressEvent) {
          //   console.log('progressEvent::', progressEvent)
          //   // Do whatever you want with the native progress event
          // },
          data: payload
        }).then(res => {
          console.log('commit::', commit);
          resolve(res);
        }).catch(err => {
          console.error('err::::', err);  
          reject(err);
        })
      });

    },

    /***
     * 获取省市
     * @param parentId string  根据父节点查询子节点数据，如查询某个省份下面的城市，或查询某个城市下面的区县，如parentId为空或者0，则查询所有的省份
    */
    GET_REGION({ commit }, payload) {
      return new Promise((resolve, reject) => {
        request.get('/district/queryByParentId.htm', {
          params: payload
        }).then(res => {
          console.log('res::', res);
          console.log('commit::', commit);
          resolve(res);
        }).catch(err => {
          console.error('err::::', err);
          reject(err);
        })
      });
    }
  }
}

export default common